package com.ky.tms.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author chengkaimao
 * @since 2020-03-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tms_order")
public class TmsOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 客户id
     */
    private Long customId;

    /**
     * 客户名称
     */
    private String customName;

    /**
     * load号
     */
    private String loadNo;

    /**
     * 主订单ID
     */
    private Long parentId;

    /**
     * 订单状态
     */
    private String status;

    /**
     * 提货日期
     */
    private LocalDate pickDate;

    /**
     * 到货日期
     */
    private LocalDate aogDate;

    /**
     * 线路
     */
    private String line;

    /**
     * 线路Id
     */
    private Long lineId;
    /**
     * 装货地
     */
    private String loadingPlace;

    /**
     * 装货工厂
     */
    private String loadingFactory;

    /**
     * 卸货地
     */
    private String loadoffPlace;

    /**
     * 卸货工厂
     */
    private String loadoffFactory;

    /**
     * 基点
     */
    private String basePoint;

    /**
     * 业务类型
     */
    private String busType;

    /**
     * 要车类型
     */
    private String carType;

    /**
     * 要车类型Id
     */
    private Long carTypeId;

    /**
     * 数量
     */
    private BigDecimal amount;

    /**
     * 体积
     */
    private BigDecimal volume;

    /**
     * 重量
     */
    private BigDecimal weight;

    /**
     * 体积单价
     */
    private BigDecimal vPrice;

    /**
     * 重量单价
     */
    private BigDecimal wPrice;

    /**
     * 提货费
     */
    private BigDecimal pickFee;

    /**
     * 干线费
     */
    private BigDecimal arteryFee;

    /**
     * 送货费
     */
    private BigDecimal dropoffFee;

    /**
     * 加点费
     */
    private BigDecimal workoverFee;

    /**
     * 装货费
     */
    private BigDecimal loadupFee;

    /**
     * 卸货费
     */
    private BigDecimal loadoffFee;

    /**
     * 包车费
     */
    private BigDecimal carFee;

    /**
     * 燃油补助费
     */
    private BigDecimal fuelFee;

    /**
     * 加班费
     */
    private BigDecimal callbackFee;

    /**
     * 押车费
     */
    private BigDecimal escortinFee;

    /**
     * 小费
     */
    private BigDecimal tipFee;

    /**
     * 短驳费
     */
    private BigDecimal shuttleFee;

    /**
     * 备注
     */
    private String remark;

    /**
     * DN单号
     */
    private String dnNo;

    /**
     * 驳回理由
     */
    private String rejectCase;

    /**
     * 实际收入
     */
    private BigDecimal realIncome;

    /**
     * 是否有效
     */
    private Integer isValid;

    /**
     * 是否锁定
     */
    private Integer isLock;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    private String createUser;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    private String updateUser;

    /**
     * 版本号
     */
    private Long version;

    @TableField(exist = false)
    List<TmsOrder> children;

    /**
     * 总费用
     */
    @TableField(exist = false)
    private BigDecimal feeSum;

    /**
     * 查询标识
     */
    @TableField(exist = false)
    private String flag;

    @TableField(exist = false)
    private List<String> createTimeArray;

    @TableField(exist = false)
    private String inStatus;

    @TableField(exist = false)
    private String outStatus;

    @TableField(exist = false)
    private List<String> loadNos;



}
